package com.itawei.d5_fuction;
/**
 * 方法引用：把写好的方法拿过来用，代替函数式接口的方法体
 */

import java.util.Arrays;
import java.util.Comparator;

public class FuctionDemo1 {
    public static void main(String[] args) {
        Integer[] arr = {3,5,4,1,6,2};


        //完整格式
        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });

        //lambda表达式
        Arrays.sort(arr,(Integer o1,Integer o2)->{
            return o2 - o1;
        });

        //lambda表达式的简化形式
        Arrays.sort(arr,(o1, o2)-> o2 - o1);


        //方法引用
        //1.引用处必须是函数式接口
        //2.被引用的方法已经存在
        //3.被引用方法的形参和返回值 需要和抽象方法的形参和返回值一致
        //4.被引用的方法 的功能需要满足当前的需求
        Arrays.sort(arr,FuctionDemo1::subtraction);

        System.out.println(Arrays.toString(arr));

    }
    public static int subtraction(int number1,int number2) {
        return number2 - number1;
    }



}
